package com.home.security.browser.auth.service;

import com.home.security.browser.auth.entity.SysAuthMenu;
import com.home.security.browser.auth.entity.SysAuthRole;
import com.home.common.model.CurrentUser;

import java.util.List;

/**
 * Description:
 * Created by 王大宸 on 2020-11-12 15:10
 * Created with IntelliJ IDEA.
 */
public interface AuthService {

    /***
     * 功能说明：登录查询
     *
     * @author 王大宸
     * @date 2020/11/14 2:15
     * @param account  登录账号
     * @param client   登录客户端
     * @return com.home.common.framework.core.base.entity.CurrentUser
     */
    CurrentUser login(String account, String client);

    /***
     * 功能说明：根据登录用户信息,查询用户角色
     *
     * @author 王大宸
     * @date 2020/11/14 2:29
     * @param userId  用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthRole>
     */
    List<SysAuthRole> getRoleByUser(String userId);

    /***
     * 功能说明：根据用户id,查询菜单
     *
     * @author 王大宸
     * @date 2020/11/14 2:30
     * @param userId 用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthMenu>
     */
    List<SysAuthMenu> getMenuByUser(String userId);

    /***
     * 功能说明：根据用户信息获取用户菜单
     *
     * @author 王大宸
     * @date 2020/11/14 11:38
     * @param appCode    应用编码
     * @param userType   用户类型
     * @param userId     用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthMenu>
     */
    List<SysAuthMenu> getUserMenu(String appCode, String userType, String userId);

    /***
     * 功能说明：获取用户权限
     *
     * @author 王大宸
     * @date 2020/12/15 10:08
     * @param appCode   应用编码
     * @param userType  用户类型
     * @param userId    用户id
     * @return java.lang.String
     */
    String getUserPerms(String appCode, String userType, String userId);

}
